home *** CD-ROM | disk | FTP | other *** search
- //: C25:Trash.cpp {O}
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- #include "Trash.h"
- using namespace std;
-
- Trash* Trash::factory(const Info& info) {
- vector<Trash*>::iterator it;
- for(it = prototypes.begin();
- it != prototypes.end(); it++) {
- // Somehow determine the new type
- // to create, and clone one:
- if (info.id() == (*it)->id())
- return (*it)->clone(info);
- }
- cerr << "Prototype not found for "
- << info << endl;
- // "Default" to first one in the vector:
- return (*prototypes.begin())->clone(info);
- } ///:~
-